package com.weishi.project.training.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.weishi.project.api.vo.WeekClassHourAndKilometersVo;
import com.weishi.project.api.vo.WeekDetailsVo;
import com.weishi.project.api.vo.WeekTypeCountVo;
import com.weishi.project.sport.home.vo.QueryDateVO;
import com.weishi.project.sport.home.vo.ReturnTrainingWeekVO;
import com.weishi.project.system.domain.SysUser;
import com.weishi.project.training.domain.AnnualPlan;
import com.weishi.project.training.domain.TrainingWeek;

import java.util.List;
import java.util.Map;

/**
 * trainingWeekMapper接口
 */
public interface TrainingWeekMapper extends BaseMapper<TrainingWeek> {

    /**
     * 查询trainingWeek列表
     */
    List<TrainingWeek> selectTrainingWeekList(TrainingWeek trainingWeek);
    /**
     * 获取周期集合
     * @return List<AnnualPlan>
     */
    List<AnnualPlan> getAnnualPlan();
    /**
     * 根据id查看周计划详情
     * @param id
     * @return TrainingWeek
     */
    TrainingWeek getTrainingWeekById(int id);
    /**
     * 修改周计划
     * @param trainingWeek
     */
    void updateTrainingWeek(TrainingWeek trainingWeek);

    List<SysUser> getSysUerList();

    List<WeekTypeCountVo> queryWeekTypeCount(Map<String,Object> map);

    List<TrainingWeek> getWeekByAnnualPlanId(Integer annualPlanId);

    /**
     * 重新封装返回值
     */
    List<ReturnTrainingWeekVO> getWeekByAnnualPlanIdVO(Integer annualPlanId);

    /**
     * 获取本周计划 根据weekId查询
     * @return List<WeekDetailsVo>
     */
    List<WeekDetailsVo> getWeekDetails(int weekId);

    TrainingWeek selectTrainingWeekByDay(Map<String, Object> map);

    TrainingWeek selectTrainingWeekByWeek(Map<String, Object> map);

    List<WeekClassHourAndKilometersVo> getWeekClassHourAndKilometersVoList(Map<String,Object> params);

    void saveTrainingWeek(TrainingWeek trainingWeek);

    void removeTrainingWeek(int id);


    /**
     * 运动员 -- 本周训练数据 -- 查询日期
     */
    List<QueryDateVO> getQueryDate(String day , Integer week);







}